Data Session Synchronization With Phone Numbers

ABSTRACT

A method for administering a communication session includes initiating a session between a server and a user device, the user device associated with a user phone number, associating the user phone number and a first session state phone number with a state of the session, and sending a first message associated with the state of the session from the server to the user device, the first message sent from the first session state phone number to the user phone number.

BACKGROUND

The present invention relates to sending and receiving data over a phonenetwork, and more specifically, to data sessions using phone numbers.

Though the functions of available mobile telephone devices continue toadvance, there are significant numbers of users who utilize mobiletelephone devices with limited functions or features. For example, incontrast to “smart phones” millions of mobile telephone device users usesimple mobile telephone devices with voice and texting/short messageservice (SMS), but with limited alternative communications features.

BRIEF SUMMARY

According to one embodiment of the present invention, a method foradministering a communication session includes initiating a sessionbetween a server and a user device, the user device associated with auser phone number, associating the user phone number and a first sessionstate phone number with a state of the session, and sending a firstmessage associated with the state of the session from the server to theuser device, the first message sent from the first session state phonenumber to the user phone number.

According to another embodiment of the present invention, a system foradministering a communications session includes a server including aprocessor operative to initiate a session between a server and a userdevice, the user device associated with a user phone number, associatethe user phone number and a first session state phone number with astate of the session, and send a first message associated with the stateof the session from the server to the user device, the first messagesent from the first session state phone number to the user phone number.

According to yet another embodiment of the present invention anon-transitory computer-readable storage medium including computerexecutable instructions that, when executed on a processor of a computerapparatus, direct the processor to perform a method for dynamicallyadjusting a hardware event counting time-slice window, the methodincludes initiating a session between a server and a user device, theuser device associated with a user phone number, associating the userphone number and a first session state phone number with a state of thesession, and sending a first message associated with the state of thesession from the server to the user device, the first message sent fromthe first session state phone number to the user phone number.

According to yet another embodiment of the present invention a methodfor administering a communication session includes receiving a messagefrom a user device, the message associated with a user phone numberassociated with the user device, associating the user phone number and afirst session state phone number with a state of the session such thatthe user phone number and the first session state phone number uniquelyidentify the state of the session, and saving the user phone number, thefirst session state phone number, and the associated state of thesession in a memory.

Additional features and advantages are realized through the techniquesof the present invention. Other embodiments and aspects of the inventionare described in detail herein and are considered a part of the claimedinvention. For a better understanding of the invention with theadvantages and the features, refer to the description and to thedrawings.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The subject matter which is regarded as the invention is particularlypointed out and distinctly claimed in the claims at the conclusion ofthe specification. The forgoing and other features, and advantages ofthe invention are apparent from the following detailed description takenin conjunction with the accompanying drawings in which:

FIG. 1 illustrates an exemplary embodiment of a system.

FIG. 2 illustrates a block diagram of an example of a portion of asession.

FIG. 3 illustrates an example of a session state table.

FIGS. 4A and 4B illustrate a block diagram of an exemplary method forinitiating and processing a session with the system of FIG. 1.

DETAILED DESCRIPTION

In many mobile telephone service areas, some users may utilize voicefeatures and texting or SMS features, but may not use other dataservices due to device or network limitations, or the cost of wirelessdata transmission over the networks. The illustrated embodimentsdescribed below allow a user to interact with a server in a session toperform a variety of tasks using text messaging or voice messagingfeatures. Though the illustrated embodiments describe texting or SMSservices, one of ordinary skill in the art would understand that anytype similar messaging service including voice messaging, which may bein some embodiments converted to textual messages or processed withvoice recognition methods may be used in a similar manner as describedbelow.

Users of a messaging-capable mobile telephone device wanting to utilizea data service may send messages to or receive messages from a server. Asession is initiated (and may be also completed) during the exchange ofmessages. A session may be variously known as a conversation, adialogue, or a connection. The server maintains the state of thesession. The server communicates the state to the device and then atlater time the device communicates the state back to the server,allowing the service to be performed according to the communicatedstate. The state could be sent as part of the message and then themessage returned to the server, but has the disadvantage that the statebecomes part of the message, reducing the space for message data.Therefore, a way is needed to communicate the state of a session to asimple telephone device.

FIG. 1 illustrates an exemplary embodiment of a system 100. The system100 includes a server or processor 102 that is communicatively connectedto a memory or database 104, a display device 106, and an input device108. The server 102 is communicatively connected to a user device 110that may include, for example, a mobile phone or other type of userdevice via a communications network 101. Though the illustratedembodiment includes one user device 110, the system 100 may include anynumber of user devices 110. The server 102 is operative to receivemessages sent from the user device 110 that may be addressed to one ormore phone numbers associated with the server 102. For example, the userdevice may send a message to the server 102 by addressing the message toa particular phone number. The server 102 receives the message thatincludes the phone number of the sender; the phone number that themessage was sent to; and the content of the message.

FIG. 2 illustrates a block diagram of an example of a portion of asession “A” that allows a user to pay their water bill using the system100 (of FIG. 1). A session may include, for example, any type of dataexchange between at least one user device and a server. A session may beinitiated by, for example, either the server 102, the user device 110,or in some embodiments, another processor. In this regard, the userdevice 110 sends a session start message to the server 102 via a phonenumber initially known by the user (PN0) (e.g., “555-BILL”). An examplemessage received by the server includes the phone number of the sendinguser device (UN1), the phone number associated with the sessioninitiation PN0, and the content line “Pay my water bill,” or moregenerally <sender number; recipient number; message content>. Wheninitiating a session, the server 102 may use the PN0 number, the UN1,the content line, or any combination of these elements to identify thesession that will be initiated. For example, the PN0 may be uniquelyassociated with the pay water bill session, thus a message received froma user device 110 that has been sent to PN0 will initiate the pay waterbill session. Alternatively, the server may also use the content of themessage (e.g., “Pay my water bill” or “Pay my electricity bill”) toidentify the session by logically determining that the user would liketo pay their water bill or another type of bill depending on the messagecontent. In the illustrated example, the message received by the server102 has been sent to PN0. The receipt of this message defines a sessionstate A:1 in block 202. The session state A:1 may, for example, beassociated with a request to initiate a session. In block 204, theserver 102 starts the session and sends a request for a credit cardnumber to the user, which defines session state A:2. The credit cardnumber is received from the user in block 206, which defines sessionstate A:3. In block 208, in session state, A:4, the server 102 sends arequest for a security code to the user device 110. The security code isreceived from the user device 110 in block 210, defining session stateA:5. In block 212, the server 110 processes the card number in sessionstate A:6). In block 214, the server determines whether the cardprocessing was successful. If yes, in block 216, the server 102 sends aconfirmation message to the user device 110 in session state A:7. If no,an error message is sent to the user device 110 in block 218, sessionstate A:8.

To properly administer the session, the server 102 tracks the state ofthe session by associating phone numbers with session states. FIG. 3illustrates an example of a session state table 300. The session statetable 300 includes a user device phone number field, a session statephone number field, and a session state identifier field. The operationof the session state table 300 will be further described below. Asession state phone number includes a phone number associated with aparticular session state.

FIGS. 4A and 4B illustrate a block diagram of an exemplary method forinitiating and processing a session with the system 100 (of FIG. 1). Inthis regard, in block 402, a message is received by the server 102 fromthe user device 110. The message includes the user device phone numberUN1; the session initiation phone number PN0 (i.e., a phone numberassociated with the server 102 and/or a session orchestrated by theserver 102); and a textual message “Pay my water bill” encoded as thetuple <UN1; PN0; Pay my water bill>. In block 404, the server 102identifies the session type (e.g. session A, of FIG. 2) and initiatesthe session. In block 406, the server 102 identifies the session state(e.g., A:2) and prepares to send a request for a credit card number tothe user by selecting an available phone number from a pool of phonenumbers reserved for use by the server 102 where the pool of phonenumbers includes PN0-PNn−1. In block 408 the server 102 uses the sessionstate table 300 (of FIG. 3) to determine whether the selected phonenumber (PN1) has been associated with the user device 110 phone numberUN1 in the present session or any other session. If a phone number isnot available or cannot be selected then an error state is flagged. Ifthe selected phone number PN1 has been previously associated with theUN1, a different number is selected by the server 102, in block 410. Inblock 412, once an unassociated phone number is selected, the number isassociated with the current session state and the user device 110 phonenumber and saved in the table 300 as the session state phone number. Inblock 414, a message associated with the current session state is sentto the user device 110 via the selected phone number (e.g., <PN1; UN1;Please provide your credit card number>). A response from the userdevice 110 with the credit card number is received by the server inblock 416 (e.g., <UN1; PN1; xxxxxxxxxx09005>). In block 418, the server102 identifies the session state using the table 300 and the UN1; PN1fields in the message. In the illustrated example, the message receivedfrom UN1 sent to the number PN1 indicates that sessions A:2 and A:3 havebeen completed. In block 420, the action associated with the currentsession state may be performed (e.g., saving the received credit cardnumber) and the session may progress to the next applicable sessionstate (e.g., sending a request for a security code to user A:4) In theillustrated example, another phone number may be associated with thenext session state (A:4) for the next message (e.g., <PN2; UN1; Pleaseprovide security code>) that will be sent to the user device 110.

The combination of the user phone number and the session state phonenumber allows the server 102 to identify the session state for anynumber of sessions for any number of users. Referring to FIG. 3, asession state B:4 has been associated with UN1 and PN5, which would, forexample, identify a different session (i.e., Session B) associated withthe user device 110 using the phone number UN1. The illustrated examplealso includes, another user device 110 having a phone number UN2 that isassociated with the session state A:1 and the session state phone numberPN0. Since the user phone numbers (UN1 and UN2) are different, the samesession state phone number PN0) may be associated with different usersto identify associated session states.

The technical effects and benefits of the illustrated embodiments allowa server to identify and track the states of multiple sessions betweenthe server and any number of users using a combination of the phonenumber of the user and phone numbers associated by the server withstates of the sessions.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon. Anycombination of one or more computer readable medium(s) may be utilized.The computer readable medium may be a computer readable signal medium ora computer readable storage medium. A computer readable storage mediummay be, for example, but not limited to, an electronic, magnetic,optical, electromagnetic, infrared, or semiconductor system, apparatus,or device, or any suitable combination of the foregoing. More specificexamples (a non-exhaustive list) of the computer readable storage mediumwould include the following: an electrical connection having one or morewires, a portable computer diskette, a hard disk, a random access memory(RAM), a read-only memory (ROM), an erasable programmable read-onlymemory (EPROM or Flash memory), an optical fiber, a portable compactdisc read-only memory (CD-ROM), an optical storage device, a magneticstorage device, or any suitable combination of the foregoing. In thecontext of this document, a computer readable storage medium may be anytangible medium that can contain, or store a program for use by or inconnection with an instruction execution system, apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks. These computerprogram instructions may also be stored in a computer readable mediumthat can direct a computer, other programmable data processingapparatus, or other devices to function in a particular manner, suchthat the instructions stored in the computer readable medium produce anarticle of manufacture including instructions which implement thefunction/act specified in the flowchart and/or block diagram block orblocks. The computer program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other devicesto cause a series of operational steps to be performed on the computer,other programmable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. The flowchart and block diagrams in the Figuresillustrate the architecture, functionality, and operation of possibleimplementations of systems, methods and computer program productsaccording to various embodiments of the present invention. In thisregard, each block in the flowchart or block diagrams may represent amodule, segment, or portion of code, which comprises one or moreexecutable instructions for implementing the specified logicalfunction(s). It should also be noted that, in some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts, or combinations of special purpose hardware andcomputer instructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of onemore other features, integers, steps, operations, element components,and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the invention. Theembodiment was chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated

The flow diagrams depicted herein are just one example. There may bemany variations to this diagram or the steps (or operations) describedtherein without departing from the spirit of the invention. Forinstance, the steps may be performed in a differing order or steps maybe added, deleted or modified. All of these variations are considered apart of the claimed invention.

While the preferred embodiment to the invention had been described, itwill be understood that those skilled in the art, both now and in thefuture, may make various improvements and enhancements which fall withinthe scope of the claims which follow. These claims should be construedto maintain the proper protection for the invention first described.

1. A method for administering a communication session, the methodincluding: initiating a session between a server and a user device, theuser device associated with a user phone number; associating the userphone number and a first session state phone number with a state of thesession; and sending a first message associated with the state of thesession from the server to the user device, the first message sent fromthe first session state phone number to the user phone number.
 2. Themethod of claim 1, wherein the method further includes: receiving asecond message from the user device, the second message sent from theuser phone number to the first session state phone number; identifying acurrent session state associated with the user phone number and thefirst session phone number; and processing the second message.
 3. Themethod of claim 1, wherein the initiation of the session includes:receiving an initiation message from the user device, the message sentfrom the user phone number to a session state phone number associatedwith session initiation; and initiating the session responsive toreceiving the initiation message.
 4. The method of claim 3, wherein theinitiation message includes a textual portion indicative of a type ofsession initiation.
 5. The method of claim 3, wherein the initiationmessage includes a voice portion indicative of a type of sessioninitiation.
 6. The method of claim 4, wherein the textual portion isentered by a user.
 7. The method of claim 5, wherein the voice portionis entered by a user.
 8. The method of claim 2, wherein the methodfurther includes: responsive to processing the second message,associating the user phone number and a second session state phonenumber with a third state of the session; and sending a second messageassociated with the state of the session from the server to the userdevice, the second message sent from the second session state phonenumber to the user phone number.
 9. A system for administering acommunications session, the system comprising a server including aprocessor operative to initiate a session between a server and a userdevice, the user device associated with a user phone number, associatethe user phone number and a first session state phone number with astate of the session, and send a first message associated with the stateof the session from the server to the user device, the first messagesent from the first session state phone number to the user phone number.10. The system of claim 9, wherein the processor is further operative toreceive a second message from the user device, the second message sentfrom the user phone number to the first session state phone number,identify a current session state associated with the user phone numberand the first session phone number, and process the second message. 11.The system of claim 9, wherein the initiation of the session includes:receiving an initiation message from the user device, the message sentfrom the user phone number to a session state phone number associatedwith session initiation; and initiating the session responsive toreceiving the initiation message.
 12. The system of claim 11, whereinthe initiation message includes a textual portion indicative of a typeof session initiation.
 13. The system of claim 12, wherein the textualportion is entered by a user.
 14. The system of claim 9, wherein themethod further includes: responsive to processing the second message,associating the user phone number and a second session state phonenumber with a third state of the session; and sending a second messageassociated with the state of the session from the server to the userdevice, the second message sent from the second session state phonenumber to the user phone number.
 15. The system of claim 9, wherein theserver is connected to the user device via a communications network. 16.The system of claim 9, wherein the user device is a mobile telephonedevice.
 17. A non-transitory computer-readable storage medium includingcomputer executable instructions that, when executed on a processor of acomputer apparatus, direct the processor to perform a method fordynamically adjusting a hardware event counting time-slice window, themethod comprising: initiating a session between a server and a userdevice, the user device associated with a user phone number; associatingthe user phone number and a first session state phone number with astate of the session; and sending a first message associated with thestate of the session from the server to the user device, the firstmessage sent from the first session state phone number to the user phonenumber.
 18. The computer-readable storage medium of claim 17, whereinthe method further includes: receiving a second message from the userdevice, the second message sent from the user phone number to the firstsession state phone number; identifying a current session stateassociated with the user phone number and the first session phonenumber; and processing the second message.
 19. The computer-readablestorage medium of claim 17, wherein the initiation of the sessionincludes: receiving an initiation message from the user device, themessage sent from the user phone number to a session state phone numberassociated with session initiation; and initiating the sessionresponsive to receiving the initiation message.
 20. Thecomputer-readable storage medium of claim 19, wherein the initiationmessage includes a textual portion indicative of a type of sessioninitiation.
 21. The computer-readable storage medium of claim 20,wherein the textual portion is entered by a user.
 22. Thecomputer-readable storage medium of claim 17, wherein the method furtherincludes: responsive to processing the second message, associating theuser phone number and a second session state phone number with a thirdstate of the session; and sending a second message associated with thestate of the session from the server to the user device, the secondmessage sent from the second session state phone number to the userphone number.
 23. A method for administering a communication session,the method including: receiving a message from a user device, themessage associated with a user phone number associated with the userdevice; associating the user phone number and a first session statephone number with a state of the session such that the user phone numberand the first session state phone number uniquely identify the state ofthe session; and saving the user phone number, the first session statephone number, and the associated state of the session in a memory.